home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / C⁄C++ OS8 / Temperature / TemperatureDoc.cp < prev    next >
Encoding:
Text File  |  1998-09-06  |  1.5 KB  |  101 lines  |  [TEXT/CWIE]

  1. // TemperatureDoc.cp -- document-level functions
  2.  
  3. #include <Types.h>
  4. #include <Events.h>
  5. #include <Menus.h>
  6. #include "Globals.h"
  7. #include "ResourceDefs.h"
  8. #include "Miscellany.h"
  9. #include "TemperatureEngine.h"
  10.  
  11. #include "AboutDialog.h"
  12. #include "DDocData.h"
  13. #include "MainWindow.h"
  14. #include "TemperatureDoc.h"
  15.  
  16. //----------
  17. TemperatureDoc::TemperatureDoc ()
  18. {
  19.     mEngine = new TemperatureEngine;
  20.  
  21.     mMainWindowPtr = nil;
  22. }
  23.  
  24. //----------
  25. TemperatureDoc::~TemperatureDoc ()
  26. {
  27. }
  28.  
  29. //----------
  30. TemperatureEngine*        TemperatureDoc::GetEngine ()
  31. {
  32.     return (TemperatureEngine*) mEngine;
  33. }
  34.  
  35. //----------
  36. void    TemperatureDoc::OpenWindows ()
  37. {
  38.     TemperatureEngine*        engine = GetEngine ();
  39.     DDocData*        docData = engine->GetDocData ();
  40.  
  41.     MainWindow::Create (this, docData);
  42. }
  43.  
  44. //----------
  45. Boolean        TemperatureDoc::WouldCloseDoc (
  46.     WindowPtr        windPtr)
  47. {
  48.     short        numOpen = 0;
  49.  
  50.     if (mMainWindowPtr != nil)        numOpen++;
  51.  
  52.     return (numOpen <= 1);
  53. }
  54.  
  55. //----------
  56. void    TemperatureDoc::DoInvokeAbout ()
  57. {
  58.     DAboutDialogData        data;
  59.  
  60.  
  61.     // pre-invoke code
  62.  
  63.     if (CAboutDialog::GetAboutDialog (&data)) {
  64.  
  65.         // post-invoke code
  66.  
  67.     }
  68. }
  69.  
  70. //----------
  71. Boolean        TemperatureDoc::DoCommand (
  72.     long        inCommand)
  73. {
  74.     Boolean        result = true;
  75.  
  76.     switch (inCommand) {
  77.         case cmdSave:
  78.                 DoSave ();
  79.             break;
  80.         case cmdSaveAs:
  81.                 DoSaveAs ();
  82.             break;
  83.         case cmdRevert:
  84.                 DoRevert ();
  85.             break;
  86.         case cmdPageSetup:
  87.                 DoPageSetup ();
  88.             break;
  89.         case cmdPrint:
  90.                 DoPrint ();
  91.             break;
  92.         case cmdInvokeAbout:
  93.                 DoInvokeAbout ();
  94.             break;
  95.  
  96.         default:
  97.                 result = false;
  98.     } // switch
  99.     return result;
  100. }
  101.